/*
  题目描述
    有若干只鸡兔虫同在一个笼子里，从上面数，有 m 个头，从下面数，有 n 只脚。
    已知鸡两只脚，兔四只脚，虫六只脚。问笼中各有多少只鸡、兔和虫？
  输入描述
    输入一行，两个数字 m 和 n 分别表示头的个数和脚的个数。
  输出描述
    输出若干行，每行 3 个空格隔开的整数，为鸡兔虫个数。
    若鸡的数量不同，按鸡的数量升序输出；否则按照兔子的数量升序输出
  样例 1
    输入
      56 134
    输出
      45 11 0
      46 9 1
      47 7 2
      48 5 3
      49 3 4
      50 1 5
  提示
    1 ≤ n, m ≤ 1000
*/

#include <iostream>

using namespace std;

int main() {
    int n;
    int m;
    int k;

    cin >> n >> m;

    // 注意: 这里的循环判定条件已经过优化, 优化后可以减少程序整体的运行时间!
    for (int i = 0; i <= n; i++) {
        for (int j = 0; j <= n; j++) {
            k = n - i - j;  // 注意: 这里是重要的优化点
            if (i + j + k == n && i * 2 + j * 4 + k * 6 == m) {
                cout << i << " " << j << " " << k << endl;
            }
        }
    }

    return 0;
}